1. Technical Field
The present invention relates to an improved data center. In particular, the present invention relates to deploying software applications in a data center. Still more particularly, the present invention relates to providing alternative installation structures for deployment of software applications in a data center.
2. Description of Related Art
In a data center, deployment of software applications typically requires complex setups that have common elements specific to the applications being deployed to the environment, and to the data center policies. For example, a Java software application may require a Java runtime environment (JRE) or Java development kit (JDK) to be installed before it can be deployed. Java runtime environment and Java development kit are products available from Sun Microsystems, Inc.
Currently, these complex setups are manually performed by administrators who manage the data center. Administrators have to run a requisite check on each software application to be deployed to determine a number of modules or packages that are required by the software application. The setup process not only requires human expertise, but is also error prone and time consuming. For example, since JDK includes a vast number of versions and subversions, an administration has to manually ensure that each of the required version or subversion is configured to be deployed.
In addition, a software application may be deployed in several ways by using a variety of underlying infrastructure topologies. Some existing deployment mechanisms recognize the requirements for each composing module of the software application to be deployed as well as dependencies between the composing modules. Other deployment mechanisms prevent an incomplete deployment by checking the prerequisites of a software installation on running user machines. However, none of these existing deployment mechanisms provide alternative installation structures of software modules that enable a complete installation or that may be configured before a user machine is powered up.
Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for providing alternative installation structures for deployment of software applications, such that an installation failure may be avoided by actively searching valid paths that yield a complete installation.